package br.com.mrh.entity;

/**
 * Representa um <b>Email</b> do Usuario
 * @author 	alex.paula
 * @since  	16/02/2012
 * @version 1.0
 */
public class Email implements IBaseEntidade {
	
	/**
	 * serialVersionUID
	 */
	private static final long serialVersionUID = 1L;

	/**
	 * Codigo do Email
	 */
	private Integer		idEmail;
	
	/**
	 * Email do Usuario
	 */
	private String		nmEmail;
	
	/**
	 * Indicador de Email padrao
	 */
	private Boolean		inpadrao;
	
	/**
	 * Codigo do Usuario
	 */
	private Integer		idUsuario;
	
	/**
	 * Usuario do Email
	 */
	private Usuario		usuario;
	
	@Override
	public Integer getId() {
		return idEmail;
	}

	public Integer getIdEmail() {
		return idEmail;
	}

	public void setIdEmail(Integer idEmail) {
		this.idEmail = idEmail;
	}

	public String getNmEmail() {
		return nmEmail;
	}

	public void setNmEmail(String nmEmail) {
		this.nmEmail = nmEmail;
	}

	public Boolean getInpadrao() {
		return inpadrao;
	}

	public void setInpadrao(Boolean inpadrao) {
		this.inpadrao = inpadrao;
	}

	public Integer getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(Integer idUsuario) {
		this.idUsuario = idUsuario;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
		setIdUsuario(usuario.getId());
	}

	@Override
	public int hashCode() {
		final int prime = 31;
		int result = 1;
		result = prime * result + ((idEmail == null) ? 0 : idEmail.hashCode());
		result = prime * result
				+ ((idUsuario == null) ? 0 : idUsuario.hashCode());
		result = prime * result
				+ ((inpadrao == null) ? 0 : inpadrao.hashCode());
		result = prime * result + ((nmEmail == null) ? 0 : nmEmail.hashCode());
		result = prime * result + ((usuario == null) ? 0 : usuario.hashCode());
		return result;
	}

	@Override
	public boolean equals(Object obj) {
		if (this == obj)
			return true;
		if (obj == null)
			return false;
		if (getClass() != obj.getClass())
			return false;
		Email other = (Email) obj;
		if (idEmail == null) {
			if (other.idEmail != null)
				return false;
		} else if (!idEmail.equals(other.idEmail))
			return false;
		if (idUsuario == null) {
			if (other.idUsuario != null)
				return false;
		} else if (!idUsuario.equals(other.idUsuario))
			return false;
		if (inpadrao == null) {
			if (other.inpadrao != null)
				return false;
		} else if (!inpadrao.equals(other.inpadrao))
			return false;
		if (nmEmail == null) {
			if (other.nmEmail != null)
				return false;
		} else if (!nmEmail.equals(other.nmEmail))
			return false;
		if (usuario == null) {
			if (other.usuario != null)
				return false;
		} else if (!usuario.equals(other.usuario))
			return false;
		return true;
	}

	@Override
	public String toString() {
		return "Email [idEmail=" + idEmail + ", nmEmail=" + nmEmail
				+ ", inpadrao=" + inpadrao + ", idUsuario=" + idUsuario + "]";
	}
	
}
